In-depth analysis of x86 instruction set condition codes influence on superscalar execution
نویسندگان
چکیده
Instruction set design is a crucial aspect of computer architecture. The requirements to fulfill have evolved along time. For superscalar processing the most important feature is to avoid code coupling caused by data dependencies. However, instruction sets may have particular characteristics that produce a negative impact into the amount of available parallelism for which it is important to analyze them. The popular x86 instruction set architecture includes some of those characteristics that may have negative effects in superscalar processing that may influence the final performance: dedicated use of registers, implicit operands, complex effective address computation mechanisms, condition codes usage, etc. It is therefore, an ideal candidate to use for evaluation purposes. Specifically, we analyze the impact produced by condition codes. In this work we take two approaches to solve the problem. On the first one we perform a statistical analysis of the utilization of instructions and operands. On the second we perform a mathematical analysis based on graph theory that provides a quantification for the contribution due to condition codes to the overall coupling according to the different dependence types. Finally, we evaluate the influence of condition codes utilization into the microperation level, proposing some solutions to achieve an improvement in performance.
منابع مشابه
Evaluating x86 condition codes impact on superscalar execution
The design of instruction sets is a fundamental aspect of computer architecture. A critical requirement of instruction set design is to allow for concurrent execution, avoiding those constructs that may produce data dependencies among instructions. Therefore, it is important to count on methods and tools for the evaluation of the behavior of instruction sets and quantify the influence of partic...
متن کاملEvaluation of Instruction Sets for Superscalar Execution
Instruction set design is a fundamental aspect of computer architecture. A critical requirement of instruction sets design is to allow for concurrent execution, avoiding those constructs that may produce data dependencies. Therefore, it is important to count on methods and tools for the evaluation of the behavior of instruction sets and quantify the influence of particular features of its archi...
متن کاملAnalysis of ×86 instruction set usage for DOS/Windows applications and its implication on superscalar design
The understanding of instruction set usage in typical DOS/Windows applications plays a very important role in designing high performance x86 compatible microprocessors. This paper presents the tools to such analysis, the analysis results, and their implications on the design of a superscalar processor, based on a RISC core, for efficient x86 instruction execution. The analysis tools include mon...
متن کاملApplication of Instruction Analysis/Synthesis Tools to x86’s Functional Unit Alloation1
Designing a cost effective superscalar architecture for x86 compatible microprocessors is a challenging task in terms of both technical difficulty and commercial value. One of the important design issues is the measurements of the distribution of functional unit usage and the micro operation level parallelism (MLP), which together determine the proper allocation of functional units in the super...
متن کاملApplication of instruction analysis/scheduling techniques to resource allocation of superscalar processors
This paper presents the development of instruction analysis/scheduling CAD techniques to measure the distribution of functional unit usage and the micro operation level parallelism (MLP), which together determine the proper functional unit allocation for superscalar microprocessors, such as the x86 microprocessors. The proposed techniques fit in the early design exploration phase in which the t...
متن کامل